﻿using Kaskelot.SP.Services;
using Kaskelot.Web.Services;
using Kaskelot.Web.Services.Constants;
using Stockholm.SOA.Kaskelot.WCF.DataContracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Kaskelot.Web.ClientModel;

namespace Kaskelot.Web.UserControls
{
	public partial class KursListing : System.Web.UI.UserControl
	{
		public Person Person { get; set; }

		protected void Page_Load(object sender, EventArgs e)
		{
			if (Page.IsPostBack)
				return;

			Person = WebContext.Current.Person;

			if (Person != null)
			{
				using (WebService svc = new WebService())
				{
					IEnumerable<Guid> redanPlacerade = svc.GetKursTillfalleByPersonId(Person.Id).Select(kt => kt.Id);
					IEnumerable<KursTillfalle> kurser = svc.GetKursTillfalleByPersonId(Person.Id);
					IList<KursTillfalleListItem> list = new List<KursTillfalleListItem>();

					foreach (KursTillfalle kt in kurser)
					{
						bool show = true;
						if (redanPlacerade.Contains(kt.Id))
						{
							var v = svc.GetPersonKursTillfallenByKursTillfalleId(kt.Id).Where(pkt => pkt.PersonId == Person.Id).FirstOrDefault();
							if (v != null && v.Status == PersonKursTillfalle.StatusTyp.Narvaro)
								show = false;
						}

						list.Add(new KursTillfalleListItem()
						{
							KursNamn = kt.KursNamn,
							Adress = kt.Adress,
							Sal = kt.Sal,
							Lokal = kt.Lokal,
							KursDatum = kt.Kursdatum.ToString("yyyy-MM-dd"),
							KursTid =
								kt.Starttid.Hours + ":" + kt.Starttid.Minutes.ToString().PadLeft(2, '0') +
								" - " +
								kt.Sluttid.Hours + ":" + kt.Sluttid.Minutes.ToString().PadLeft(2, '0'),
							KursId = ServiceConstants.KursIdQueryString + "=" + kt.KursId.ToString(),
							ShowChangeButton = show
						});
					}

					KursRepeater.DataSource = list;
					KursRepeater.DataBind();
				}
			}
		}

		public string GetChangeLink(bool b, string id)
		{
			if(b)
				return "<a href=\"/../byt-kurstillfaelle?" + id + "\">Ändra</a>";
			else
				return String.Empty;
		}
	}
}